<?php

class Cursos_Model extends CI_Model {

    /////////////////////////CONTROLADOR: FUNCION cargarAlumnos/////////////////////////

    function cargarAlumnos($alumnos) {

        $this->db->trans_start();

        foreach ($alumnos as $alumno) {
            $this->db->where('codigo', $alumno[4]);
            $query = $this->db->get('usuario');

            if ($query->num_rows() == 0) {
                $data = array(
                    'nombres' => $alumno[0],
                    'apePaterno' => $alumno[1],
                    'apeMaterno' => $alumno[2],
                    'email' => $alumno[3],
                    'codigo' => $alumno[4],
                    'idPerfil' => '4' //alumno
                );

                $this->db->insert('usuario', $data);
                $idUsuario = $this->db->insert_id();
            } else {
                //saco idUsuario
                $resultado = $query->result_array();
                $idUsuario = $resultado[0]['idUsuario'];
            }
            //USUARIOXSALON
            $this->db->where('idUsuario', $idUsuario);
            $this->db->where('idCiclo', $this->session->userdata('ciclo'));
            $this->db->where('idHorario', $this->session->userdata('horario'));
            $this->db->where('idCurso', $this->session->userdata('curso'));
            $query2 = $this->db->get('usuarioxsalon');

            if ($query2->num_rows() == 0) {
                $data2 = array(
                    'idUsuario' => $idUsuario,
                    'idCiclo' => $this->session->userdata('ciclo'),
                    'idHorario' => $this->session->userdata('horario'),
                    'idCurso' => $this->session->userdata('curso')
                );
                $this->db->insert('usuarioxsalon', $data2);
            }
        }

        $this->db->trans_complete();

        if ($this->db->trans_status() === FALSE)
            $mensaje = "error";
        else
            $mensaje = "ok";

        return $mensaje;
    }

    function buscar_tipos_equipos() {

        $this->db->select('idTipoEquipo, nombre');
        $this->db->where('idCiclo', $this->session->userdata('ciclo'));
        $this->db->where('idHorario', $this->session->userdata('horario'));
        $this->db->where('idCurso', $this->session->userdata('curso'));
        $resultado = $this->db->get('tipoequipo')->result_array();

        return $resultado;
    }

    function ver_integrantes_asistente($idTipoEquipo) {


        $this->db->select('idEquipo');
        $this->db->where('idUsuario', $this->session->userdata('idUsuario'));
        $grupos = $this->db->get('equipoxusuarioxsalon')->result_array();
        $i = 0;
        foreach ($grupos as $grupo) {
            $this->db->select('descripcion,idEquipo');
            $this->db->where('idTipoEquipo', $idTipoEquipo);
            $this->db->where('idEquipo', $grupo['idEquipo']);
            $equipo = $this->db->get('equipo')->result_array();
            foreach ($equipo as $eq) {

                $equipos[$i] = $eq;
                $i++;
            }
        }


        return $equipos;
    }

    function ver_integrantes_docente($idTipoEquipo) {

        $cad = "select idEquipo from equipoxusuarioxsalon group by idEquipo";

        $query = $this->db->query($cad);
        $grupos = $query->result_array();
        $i = 0;
        foreach ($grupos as $grupo) {
            $this->db->select('descripcion,idEquipo');
            $this->db->where('idTipoEquipo', $idTipoEquipo);
            $this->db->where('idEquipo', $grupo['idEquipo']);
            $equipo = $this->db->get('equipo')->result_array();
            foreach ($equipo as $eq) {

                $equipos[$i] = $eq;
                $i++;
            }
        }


        return $equipos;
    }

    function buscar_integrantes($idEquipo) {


        $cad = "select u.nombres, u.apePaterno, u.apeMaterno, u.codigo 
                                   from equipoxusuarioxsalon exuxs, usuario u 
                                   where u.idUsuario=exuxs.idUsuario and idEquipo='" . $idEquipo . "' and
                                       u.idPerfil=4";


        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function configurar_asistente_docencia($idTipoEquipo) {

        $this->db->where('idTipoEquipo', $idTipoEquipo);
        $resultado = $this->db->get('equipo')->result_array();

        return $resultado;
    }

    function buscar_tipos_equipos_asistentes() {

        $this->db->select('idTipoEquipo, nombre');
        $this->db->where('idCiclo', $this->session->userdata('ciclo'));
        $this->db->where('idHorario', $this->session->userdata('horario'));
        $this->db->where('idCurso', $this->session->userdata('curso'));
        $this->db->where('asistente', 1);
        $resultado = $this->db->get('tipoequipo')->result_array();

        return $resultado;
    }

    function buscar_tipos_equipos_docentes() {

        $this->db->select('idTipoEquipo, nombre');
        $this->db->where('idCiclo', $this->session->userdata('ciclo'));
        $this->db->where('idHorario', $this->session->userdata('horario'));
        $this->db->where('idCurso', $this->session->userdata('curso'));
        $this->db->where('docente', 1);
        $resultado = $this->db->get('tipoequipo')->result_array();

        return $resultado;
    }

    function buscar_estudiantes() {

        $query = $this->db->query("SELECT
                                    CONCAT_WS(' ',U.nombres,U.apeMaterno,U.apePaterno) AS nombres,
                                    U.codigo AS codigo,
                                    U.email AS email,
                                    U.idUsuario
                                    FROM usuario U, usuarioxsalon US
                                    WHERE US.idUsuario = U.idUsuario 
                                    AND US.idCurso = " . $this->session->userdata('curso') . "
                                    AND US.idHorario = " . $this->session->userdata('horario') . "
                                    AND US.idCiclo = " . $this->session->userdata('ciclo') . "
                                    AND U.idPerfil=4");

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function buscar_asistente() {
        $cad = "SELECT
                U.idUsuario,
                U.codigo AS codigo,
                CONCAT_WS(' ',U.nombres,U.apePaterno,U.apeMaterno) AS nombres
                FROM usuarioxsalon US, horario H, usuario U, ciclo CI, curso C
                where US.idCurso = " . $this->session->userdata('curso') . "
                AND US.idCurso = C.idCurso
                AND US.idHorario = " . $this->session->userdata('horario') . "
                AND US.idHorario = H.idHorario
                AND US.idCiclo = " . $this->session->userdata('ciclo') . "
                AND US.idCiclo = CI.idCiclo
                AND US.idUsuario = U.idUsuario
                AND U.idPerfil = 3 ";


        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function buscar_semanas_equipos($idEquipo, $idTipoEquipo) {


        $cad = "select  e.descripcion, e.idEquipo, exuxsxs.idSemana, s.numSemana
             from equipo e, equipoxusuarioxsalonxsemana exuxsxs, semana s
             where 
             e.idTipoEquipo=" . $idTipoEquipo . " 
             and e.idEquipo=exuxsxs.idEquipo 
             and e.idEquipo=" . $idEquipo . " 
             and exuxsxs.idUsuario=" . $this->session->userdata('idUsuario') . " 
             and exuxsxs.idSemana=s.idSemana";

        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    /////////////////////////CONTROLADOR: FUNCION buscar_asistente_docencia/////////////////////////

    function buscar_asistente_docencia($codigo, $nombre, $apePaterno, $apeMaterno) {
        $cad = "SELECT
                U.idUsuario,
                U.codigo AS codigo,
                CONCAT_WS(' ',U.nombres,U.apePaterno,U.apeMaterno) AS nombres
                FROM usuarioxsalon US, horario H, usuario U, ciclo CI, curso C
                where US.idCurso = " . $this->session->userdata('curso') . "
                AND US.idCurso = C.idCurso
                AND US.idHorario = " . $this->session->userdata('horario') . "
                AND US.idHorario = H.idHorario
                AND US.idCiclo = " . $this->session->userdata('ciclo') . "
                AND US.idCiclo = CI.idCiclo
                AND US.idUsuario = U.idUsuario
                AND U.codigo like '%" . $codigo . "%'
                AND U.nombres like '%" . $nombre . "%'
                AND U.apePaterno like '%" . $apePaterno . "%'
                AND U.apeMaterno like '%" . $apeMaterno . "%'
                AND U.idPerfil = 3 ";

        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    /////////////////////////CONTROLADOR: FUNCION registrar_asistente_docencia_2/////////////////////////
    function registrar_asistente_docencia_2($data) {
        $this->db->trans_start();

        $this->db->where('codigo', $data['codigo']);
        $query = $this->db->get('usuario');

        if ($query->num_rows() == 0) {
            $data = array(
                'codigo' => $data['codigo'],
                'nombres' => $data['nombre'],
                'apePaterno' => $data['apePaterno'],
                'apeMaterno' => $data['apeMaterno'],
                'email' => $data['email'],
                'idPerfil' => 3,
                'estado' => 1,
            );
            $this->db->insert('usuario', $data);
            $idUsuario = $this->db->insert_id();
        } else {
            $resultado = $query->result_array();
            $idUsuario = $resultado[0]['idUsuario'];
        }
        //USUARIOXSALON
        $this->db->where('idUsuario', $idUsuario);
        $this->db->where('idCiclo', $this->session->userdata('ciclo'));
        $this->db->where('idHorario', $this->session->userdata('horario'));
        $this->db->where('idCurso', $this->session->userdata('curso'));
        $query2 = $this->db->get('usuarioxsalon');

        if ($query2->num_rows() == 0) {
            $data1 = array(
                'idUsuario' => $idUsuario,
                'idCiclo' => $this->session->userdata('ciclo'),
                'idHorario' => $this->session->userdata('horario'),
                'idCurso' => $this->session->userdata('curso')
            );
            $this->db->insert('usuarioxsalon', $data1);
        }

        $this->db->trans_complete();
        if ($this->db->trans_status() === FALSE)
            $mensaje = "error";
        else
            $mensaje = "ok";

        return $mensaje;
    }

    function buscar_asistentes_modificar($idUsuario) {
        $this->db->where('idUsuario', $idUsuario);
        $query = $this->db->get('usuario');

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function modificar_asistente_docencia_2($data) {
        $this->db->trans_start();
        $data1 = array(
            'codigo' => $data['codigo'],
            'nombres' => $data['nombre'],
            'apePaterno' => $data['apePaterno'],
            'apeMaterno' => $data['apeMaterno'],
            'email' => $data['email']
        );
        $this->db->where('idUsuario', $data['idUsuario']);
        $this->db->update('usuario', $data1);
        $this->db->trans_complete();

        if ($this->db->trans_status() === FALSE)
            $mensaje = "error";
        else
            $mensaje = "ok";

        return $mensaje;
    }

    /////////////////////////CONTROLADOR: FUNCION eliminar_asistente/////////////////////////

    function eliminar_asistente_docencia($idUsuario) {
        $this->db->trans_start();
        $this->db->where('idUsuario', $idUsuario);
        $this->db->where('idCiclo', $this->session->userdata('ciclo'));
        $this->db->where('idHorario', $this->session->userdata('horario'));
        $this->db->where('idCurso', $this->session->userdata('curso'));
        $this->db->delete('usuarioxsalon');
        if ($this->db->trans_status() === FALSE)
            $mensaje = "error";
        else
            $mensaje = "ok";

        return $mensaje;
    }

    /////////////////////////CONTROLADOR: FUNCION eliminar_asistente/////////////////////////

    function eliminar_estudiante($idUsuario) {
        $this->db->trans_start();
        $this->db->where('idUsuario', $idUsuario);
        $this->db->where('idCiclo', $this->session->userdata('ciclo'));
        $this->db->where('idHorario', $this->session->userdata('horario'));
        $this->db->where('idCurso', $this->session->userdata('curso'));
        $this->db->delete('usuarioxsalon');
        if ($this->db->trans_status() === FALSE)
            $mensaje = "error";
        else
            $mensaje = "ok";

        return $mensaje;
    }

    function buscar_estudiante_modificar($idUsuario) {

        $this->db->where('idUsuario', $idUsuario);
        $query = $this->db->get('usuario');

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function modificar_estudiante_2($data) {
        $this->db->trans_start();
        $data1 = array(
            'codigo' => $data['codigo'],
            'nombres' => $data['nombre'],
            'apePaterno' => $data['apePaterno'],
            'apeMaterno' => $data['apeMaterno'],
            'email' => $data['email']
        );
        $this->db->where('idUsuario', $data['idUsuario']);
        $this->db->update('usuario', $data1);
        $this->db->trans_complete();

        if ($this->db->trans_status() === FALSE)
            $mensaje = "error";
        else
            $mensaje = "ok";

        return $mensaje;
    }

    function guardar_equipos($listaEquipos) {

        $this->db->trans_start();



        foreach ($listaEquipos as $listaEquipo) {

            for ($i = 0; $i < count($listaEquipo['listaTiposEquipos']); $i++) {
                if ($listaEquipo['listaEquipo'][$i] != null) {
                    //busco en bd si ya existe
                    $this->db->where('nombre', $listaEquipo['listaEquipo'][$i]);
                    $this->db->where('idTipoEquipo', $listaEquipo['listaTiposEquipos'][$i]);
                    $query = $this->db->get('equipo');

                    if ($query->num_rows() == 0) {
                        $data1 = array(
                            'nombre' => $listaEquipo['listaEquipo'][$i],
                            'descripcion' => "Equipo " . $listaEquipo['listaEquipo'][$i],
                            'idTipoEquipo' => $listaEquipo['listaTiposEquipos'][$i],
                        );


                        $this->db->insert('equipo', $data1);


                        $lastId = $this->db->insert_id();
                    } else {
                        $resultado = $query->result_array();
                        $lastId = $resultado[0]['idEquipo'];
                    }


//                    $this->db->where('idEquipo', $lastId);
//                    $query1 = $this->db->get('equipoxusuarioxsalon');
//                    if ($query1->num_rows() == 0) { 
                    $data2 = array(
                        'idUsuario' => $listaEquipo['idEstudiante'],
                        'idCiclo' => $this->session->userdata('ciclo'),
                        'idHorario' => $this->session->userdata('horario'),
                        'idCurso' => $this->session->userdata('curso'),
                        'idEquipo' => $lastId,
                    );
                    $this->db->insert('equipoxusuarioxsalon', $data2);
//                    }
                }
            }
        }

        $this->db->trans_complete();
        if ($this->db->trans_status() === FALSE)
            $mensaje = "error";
        else
            $mensaje = "ok";

        return $mensaje;
    }

    function ver_integrantes_equipo() {


        $this->db->select('idEquipo');
        $this->db->where('idUsuario', $this->session->userdata('idUsuario'));


        $idEquipos = $this->db->get('equipoxusuarioxsalon')->result_array();
        $i = 0;

        foreach ($idEquipos as $idEquipo) {

            $this->db->select('descripcion');
            $this->db->where('idEquipo', $idEquipo['idEquipo']);
            $nombreEquipo = $this->db->get('equipo')->result_array();
            $resultado[$i]['nombreEquipo'] = $nombreEquipo;

            $cad = "select u.nombres, u.apePaterno, u.apeMaterno, u.codigo
                        from equipoxusuarioxsalon exuxs, usuario u, equipo e 
                        where exuxs.idEquipo=" . $idEquipo['idEquipo'] . "
                        and u.idUsuario=exuxs.idUsuario
                        and e.idEquipo=exuxs.idEquipo and u.idPerfil=4";
            $query = $this->db->query($cad);

            if ($query->num_rows() > 0) {
                $resultado[$i]['estudiantes'] = $query->result_array();
            }

            $i++;
        }


        return $resultado;
    }

    function guardar_equipos_asistentes($listaEquiposAsistentes) {

        $this->db->trans_start();
        $i = 0;


        foreach ($listaEquiposAsistentes as $listaEquipoAsistente) {
            $semana = 1;
            for ($i = 0; $i < count($listaEquipoAsistente['equipoValor']); $i++) {

                $this->db->where('idUsuario', $listaEquipoAsistente['equipoValor'][$i]);
                $this->db->where('idCiclo', $this->session->userdata('ciclo'));
                $this->db->where('idHorario', $this->session->userdata('horario'));
                $this->db->where('idCurso', $this->session->userdata('curso'));
                $this->db->where('idEquipo', $listaEquipoAsistente['equipoSemana'][$i]);
                $query2 = $this->db->get('equipoxusuarioxsalon');

                if ($query2->num_rows() == 0) {
                    $data2 = array(
                        'idUsuario' => $listaEquipoAsistente['equipoValor'][$i],
                        'idCiclo' => $this->session->userdata('ciclo'),
                        'idCurso' => $this->session->userdata('curso'),
                        'idHorario' => $this->session->userdata('horario'),
                        'idEquipo' => $listaEquipoAsistente['equipoSemana'][$i],
                    );

                    $this->db->insert('equipoxusuarioxsalon', $data2);
                }

                $data = array(
                    'idSemana' => $listaEquipoAsistente['semana'][0],
                    'idUsuario' => $listaEquipoAsistente['equipoValor'][$i],
                    'idEquipo' => $listaEquipoAsistente['equipoSemana'][$i],
                    'idCiclo' => $this->session->userdata('ciclo'),
                    'idHorario' => $this->session->userdata('horario'),
                    'idCurso' => $this->session->userdata('curso')
                );

                $this->db->insert('equipoxusuarioxsalonxsemana', $data);
            }

            $semana++;
        }


        $this->db->trans_complete();
        if ($this->db->trans_status() === FALSE)
            $mensaje = "error";
        else
            $mensaje = "ok";

        return $mensaje;
    }

    function registra_configuracion($listaTipos) {

        $this->db->trans_start();



        foreach ($listaTipos as $listaTipo) {
            $this->db->where('nombre', $listaTipo['nombre']);
            $this->db->where('idCiclo', $this->session->userdata('ciclo'));
            $this->db->where('idHorario', $this->session->userdata('horario'));
            $this->db->where('idCurso', $this->session->userdata('curso'));

            $query = $this->db->get('tipoEquipo');

            if ($query->num_rows() == 0) {


                $data = array(
                    'nombre' => $listaTipo['nombre'],
                    'docente' => $listaTipo['docente'],
                    'asistente' => $listaTipo['asistente'],
                    'pares' => $listaTipo['pares'],
                    'idCiclo' => $this->session->userdata('ciclo'),
                    'idHorario' => $this->session->userdata('horario'),
                    'idCurso' => $this->session->userdata('curso')
                );

                $this->db->insert('tipoEquipo', $data);
            }
        }
        $this->db->trans_complete();
        if ($this->db->trans_status() === FALSE)
            $mensaje = "error";
        else
            $mensaje = "ok";

        return $mensaje;
    }

    function buscar_semana() {
        $this->db->select();
        $this->db->where('idCiclo', $this->session->userdata('ciclo'));

        $resultado = $this->db->get('semanaxciclo')->result_array();

        return $resultado;
    }

    function leer_configuracion() {
        $this->db->select('idTipoEquipo, nombre, docente, asistente, pares');
        $this->db->where('idCiclo', $this->session->userdata('ciclo'));
        $this->db->where('idHorario', $this->session->userdata('horario'));
        $this->db->where('idCurso', $this->session->userdata('curso'));


        $resultado = $this->db->get('tipoequipo')->result_array();

        return $resultado;
    }

    function buscar_evaluaciones_semana($fecha_actual) {
//AND s.fechaIni ='2013-08-19'
        $cad = "SELECT upper(s.descripcion) as semana, s.idSemana, exsxexs.numEvaluacion, e.idEvaluacion, te.nombre as tipoEquipo, te.idTipoEquipo, eq.nombre as equipo, eq.idEquipo
            FROM evaluacionxsemanaxequipoxsalon exsxexs, semana s,evaluacion e, tipoequipo te, equipo eq
            WHERE exsxexs.idSemana=s.idSemana
            AND exsxexs.idEvaluacion=e.idEvaluacion
            AND te.idTipoEquipo=e.idTipoEquipo 
            AND eq.idTipoEquipo=te.idTipoEquipo          
            AND te.docente=1
            AND exsxexs.idCurso = " . $this->session->userdata('curso') . "
            AND exsxexs.idHorario = " . $this->session->userdata('horario') . "
            AND exsxexs.idCiclo = " . $this->session->userdata('ciclo') . "
            AND exsxexs.idEquipo=eq.idEquipo
            AND exsxexs.estado=1
            GROUP BY
            upper(s.descripcion), s.idSemana, exsxexs.numEvaluacion, e.idEvaluacion, te.nombre, te.idTipoEquipo, eq.nombre, eq.idEquipo";

        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function buscar_evaluaciones_semana_asistente($fecha_actual) {

        $cad = "SELECT upper(s.descripcion) as semana, s.idSemana, exsxexs.numEvaluacion, e.idEvaluacion, te.nombre as tipoEquipo, te.idTipoEquipo, eq.nombre as equipo, eq.idEquipo
            FROM evaluacionxsemanaxequipoxsalon exsxexs, semana s,evaluacion e, tipoequipo te, equipo eq,  
            equipoxusuarioxsalon exq, evaluacionxsemanaxusuarioxsalon exs
            WHERE exsxexs.idSemana=s.idSemana
            AND exsxexs.idEvaluacion=e.idEvaluacion
            AND te.idTipoEquipo=e.idTipoEquipo 
            AND eq.idTipoEquipo=te.idTipoEquipo
            AND s.fechaIni ='2013-03-18'
            AND te.asistente=1
            AND exsxexs.idCurso = " . $this->session->userdata('curso') . "
            AND exsxexs.idHorario = " . $this->session->userdata('horario') . "
            AND exsxexs.idCiclo = " . $this->session->userdata('ciclo') . "
            AND exsxexs.idEquipo=eq.idEquipo
            AND exs.estado=1
            AND exs.idEvaluacion=e.idEvaluacion
            AND exs.idEvaluador= " . $this->session->userdata('idUsuario') . "
            GROUP BY
            upper(s.descripcion), s.idSemana, exsxexs.numEvaluacion, e.idEvaluacion, te.nombre, te.idTipoEquipo, eq.nombre, eq.idEquipo";

        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function buscar_evaluaciones_semana_estudiante($fecha_actual) {

        $cad = "SELECT upper(s.descripcion) as semana, s.idSemana, exsxexs.numEvaluacion, e.idEvaluacion, te.nombre as tipoEquipo, te.idTipoEquipo, eq.nombre as equipo, eq.idEquipo
            FROM evaluacionxsemanaxequipoxsalon exsxexs, semana s,evaluacion e, tipoequipo te, 
            equipo eq,equipoxusuarioxsalon exq, evaluacionxsemanaxusuarioxsalon exs
            WHERE exsxexs.idSemana=s.idSemana
            AND exsxexs.idEvaluacion=e.idEvaluacion
            AND te.idTipoEquipo=e.idTipoEquipo 
            AND eq.idTipoEquipo=te.idTipoEquipo
            AND s.fechaIni ='2013-03-18'
            AND te.pares=1
            AND exsxexs.idCurso = " . $this->session->userdata('curso') . "
            AND exsxexs.idHorario = " . $this->session->userdata('horario') . "
            AND exsxexs.idCiclo = " . $this->session->userdata('ciclo') . "
            AND exsxexs.idEquipo=eq.idEquipo
            AND exq.idEquipo=eq.idEquipo
            AND exq.idUsuario = " . $this->session->userdata('idUsuario') . "
            AND exs.estado=1
            AND exs.idEvaluacion=e.idEvaluacion
            and exs.idUsuario=exq.idUsuario
            GROUP BY
            upper(s.descripcion), s.idSemana, exsxexs.numEvaluacion, e.idEvaluacion, te.nombre, te.idTipoEquipo, eq.nombre, eq.idEquipo";

        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function ver_equipos_conformados() {

        $cad = "SELECT
                idEquipo from equipoxusuarioxsalon
                WHERE idCurso = " . $this->session->userdata('curso') . "
                AND idHorario = " . $this->session->userdata('horario') . "
                AND idCiclo = " . $this->session->userdata('ciclo') . " 
                group by idEquipo";



        $query = $this->db->query($cad);
        $idsEquipos = $query->result_array();
        $i = 0;
        foreach ($idsEquipos as $idEquipo) {

            $cad2 = "SELECT exuxs.idUsuario, u.nombres, u.apePaterno, u.apeMaterno, u.codigo 
                    FROM equipoxusuarioxsalon exuxs, usuario u 
                    where exuxs.idEquipo=" . $idEquipo['idEquipo'] . " and exuxs.idUsuario=u.idUsuario";
            $query = $this->db->query($cad2);
            $integrantes = $query->result_array();
            $equipos[$i] = $integrantes;
            $i++;
        }

        return $equipos;
    }

    function leer_TiposEquipos() {

        $query = $this->db->query("SELECT");


        $resultado = $query->result_array();

        return $resultado;
    }

    function tipo_equipos() {
        $cad = "SELECT
                idTipoEquipo,
                nombre
                FROM tipoequipo
                WHERE idCurso = " . $this->session->userdata('curso') . "
                AND idHorario = " . $this->session->userdata('horario') . "
                AND idCiclo = " . $this->session->userdata('ciclo');

        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function obtener_tipoEquipo($idEvaluacion) {

        $cad = "SELECT
                idTipoEquipo
                FROM evaluacion
                WHERE idEvaluacion = " . $idEvaluacion;

        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function equipos($idTipoEquipo) {
        $cad = "SELECT
                e.idEquipo,
                e.nombre
                FROM tipoequipo te, equipo e
                WHERE te.idTipoEquipo = e.idTipoEquipo
                AND te.idTipoEquipo = " . $idTipoEquipo;

        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function equipos_evaluacion($idTipoEquipo, $idEvaluacion) {
        $cad = "SELECT ex.idEquipo FROM evaluacionxsemanaxequipoxsalon ex, evaluacion e, equipo eq
                WHERE e.idTipoEquipo = " . $idTipoEquipo . " AND ex.idEvaluacion = e.idEvaluacion 
                AND ex.idEquipo = eq.idEquipo and e.idEvaluacion= " . $idEvaluacion;

        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function registrar_evaluacion($idTipoEquipo, $idEquipos, $idSemana, $idCriterios, $numEvaluacion) {

        $this->db->trans_start();

        $data1 = array(
            'duracion' => '',
            'estado' => '1',
            'descripcion' => 'Evaluación',
            'idTipoEquipo' => $idTipoEquipo
        );

        $this->db->insert('evaluacion', $data1);

        $idEvaluacion = $this->db->insert_id();

        foreach ($idCriterios as $idCriterio) {
            $data2 = array(
                'idEvaluacion' => $idEvaluacion,
                'idCriterio' => substr($idCriterio, 4)
            );

            $this->db->insert('criterioxevaluacion', $data2);
        }

        $asistIn = "";
        foreach ($idEquipos as $idEquipo) {
            $data3 = array(
                'idEvaluacion' => $idEvaluacion,
                'idSemana' => $idSemana,
                'idEquipo' => $idEquipo,
                'idCiclo' => $this->session->userdata('ciclo'),
                'idHorario' => $this->session->userdata('horario'),
                'idCurso' => $this->session->userdata('curso'),
                'numEvaluacion' => $numEvaluacion,
                'estado' => 1
            );
            $this->db->insert('evaluacionxsemanaxequipoxsalon', $data3);

            $asistIn .= "\"" . $idEquipo . "\",";
        }

        $asistIn = substr($asistIn, 0, -1);

        //INSERTAR EN SEMANAXUSUARIOXSALON
        //INSERTAR A TODOS LOS MIEMBROS DEL EQUIPO
        foreach ($idEquipos as $idEquipo) {

            $cadena = "SELECT e.idUsuario FROM equipoxusuarioxsalon e
                        LEFT JOIN usuario u
                        ON u.idPerfil='4'
                        WHERE e.idEquipo=" . $idEquipo . "
                        AND e.idCiclo=" . $this->session->userdata('ciclo') . "
                        AND e.idCurso=" . $this->session->userdata('curso') . "
                        AND e.idHorario=" . $this->session->userdata('horario') . " 
                        AND e.idUsuario=u.idUsuario";
            $query = $this->db->query($cadena);

            $idUsuarios = $query->result_array();

            foreach ($idUsuarios as $idUsuario) {
                $cad = 'SELECT * 
                        FROM semanaxusuarioxsalon
                        where idUsuario="' . $idUsuario['idUsuario'] . '" 
                        and idSemana="' . $idSemana . '"
                        and idCiclo = "' . $this->session->userdata('ciclo') . '"
                        and idCurso = "' . $this->session->userdata('curso') . '"
                        and idHorario = "' . $this->session->userdata('horario') . '"';

                $query = $this->db->query($cad);

                if ($query->num_rows() == 0) {
                    $data1 = array(
                        'idUsuario' => $idUsuario['idUsuario'],
                        'idCiclo' => $this->session->userdata('ciclo'),
                        'idCurso' => $this->session->userdata('curso'),
                        'idHorario' => $this->session->userdata('horario'),
                        'idSemana' => $idSemana
                    );

                    $this->db->insert('semanaxusuarioxsalon', $data1);
                }

                //INSERTAR EN EVALUACIONXSEMANAXUSUARIOXSALON
                //NOTA TOTAL
                $notaTotal = 0;
                //obteniendo los evaluadores  para esa evaluacion

                $cad = "SELECT te.docente, te.asistente, te.pares 
                        FROM evaluacion e, tipoequipo te
                        where e.idEvaluacion=" . $idEvaluacion . " and
                        e.idTipoEquipo=te.idTipoEquipo
                        and te.idTipoEquipo=" . $idTipoEquipo;

                $tipoEvaluadores = $this->db->query($cad)->result_array();

                $evaluadores = array();

                if ($tipoEvaluadores[0]['docente'] == '1') {

                    $cad = "SELECT u.idUsuario
                            FROM usuarioxsalon uxs, usuario u
                            where uxs.idCiclo = " . $this->session->userdata('ciclo') . "
                            and uxs.idCurso = " . $this->session->userdata('curso') . "
                            and uxs.idHorario = " . $this->session->userdata('horario') . "
                            and uxs.idUsuario = u.idUsuario
                            and u.idPerfil = '2'";

                    $evaluadores = array_merge_recursive($evaluadores, $this->db->query($cad)->result_array());
                }

                if ($tipoEvaluadores[0]['asistente'] == '1') {

                    $cad1 = "SELECT idUsuario 
                            FROM equipoxusuarioxsalonxsemana
                            where idEquipo in (" . $idEquipo . ") and idSemana=" . $idSemana . "
                            and idCiclo = " . $this->session->userdata('ciclo') . "
                            and idCurso = " . $this->session->userdata('curso') . "
                            and idHorario = " . $this->session->userdata('horario') . "
                            group by idUsuario";

                    $evaluadores = array_merge_recursive($evaluadores, $this->db->query($cad1)->result_array());
                }
                if ($tipoEvaluadores[0]['pares'] == '1') {

                    $cad2 = "SELECT distinct e.idUsuario 
                            FROM equipoxusuarioxsalon e, usuario u
                            where e.idEquipo in (" . $idEquipo . ")
                            and e.idUsuario=u.idUsuario
                            and u.idPerfil=4";
                    $evaluadores = array_merge_recursive($evaluadores, $this->db->query($cad2)->result_array());
                }

//                print_r($evaluadores);
//                echo "------------------";

                foreach ($evaluadores as $evaluador) {
                    $data2 = array(
                        'idUsuario' => $idUsuario['idUsuario'],
                        'idCiclo' => $this->session->userdata('ciclo'),
                        'idCurso' => $this->session->userdata('curso'),
                        'idHorario' => $this->session->userdata('horario'),
                        'idSemana' => $idSemana,
                        'idEvaluacion' => $idEvaluacion,
                        'notaTotal' => $notaTotal,
                        'comentarioGeneral' => '',
                        'idEvaluador' => $evaluador['idUsuario'],
                        'estado' => '1'
                    );
                    $this->db->insert('evaluacionxsemanaxusuarioxsalon', $data2);
                }

                //INSERTAR EN REGISTRONOTAS

                foreach ($idCriterios as $idCriterio) {
                    $data3 = array(
                        'idCriterio' => substr($idCriterio, 4),
                        'idUsuario' => $idUsuario['idUsuario'],
                        'idCiclo' => $this->session->userdata('ciclo'),
                        'idCurso' => $this->session->userdata('curso'),
                        'idHorario' => $this->session->userdata('horario'),
                        'idSemana' => $idSemana,
                        'idEvaluacion' => $idEvaluacion,
                        'nota' => '0',
                        'comentario' => '',
                        'fecha' => '2013-08-19'
                    );

                    $this->db->insert('registronotas', $data3);

                    //INSERTAR EN criterioxusuarioxsalon
                    $this->db->where('idUsuario', $idUsuario['idUsuario']);
                    $this->db->where('idCriterio', substr($idCriterio, 4));
                    $this->db->where('idCurso', $this->session->userdata('curso'));
                    $this->db->where('idHorario', $this->session->userdata('horario'));
                    $this->db->where('idCiclo', $this->session->userdata('ciclo'));
                    $query = $this->db->get('criterioxusuarioxsalon');

                    if ($query->num_rows() == 0) {
                        $data5 = array(
                            'idUsuario' => $idUsuario['idUsuario'],
                            'idCiclo' => $this->session->userdata('ciclo'),
                            'idCurso' => $this->session->userdata('curso'),
                            'idHorario' => $this->session->userdata('horario'),
                            'idCriterio' => substr($idCriterio, 4),
                            'notaCriterio' => 0
                        );
                        $this->db->insert('criterioxusuarioxsalon', $data5);
                    }
                }
            }
        }

        $this->db->trans_complete();

        if ($this->db->trans_status() === FALSE)
            $mensaje = "error";
        else
            $mensaje = "ok";

        $data['mensaje'] = $mensaje;
        $data['idEvaluacion'] = $idEvaluacion;

        return $data;
    }

    function obtenerSemanaMinCiclo() {
        //SELECT ;
        $cad = "SELECT
                MIN(idSemana) as idSemana
                from semanaxciclo 
                where idCiclo= " . $this->session->userdata('ciclo');

        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function cargar_evaluaciones_equipos() {

        $cad = "SELECT
                s.numSemana, numEvaluacion, idEquipo, idEvaluacion
                FROM evaluacionxsemanaxequipoxsalon es, semana s
                WHERE s.idSemana = es.idSemana
                AND idCiclo= " . $this->session->userdata('ciclo') . "
                AND idCurso= " . $this->session->userdata('curso') . "
                AND idHorario= " . $this->session->userdata('horario') . "
                ORDER BY numSemana, numEvaluacion, idEquipo";

        $resultados = $this->db->query($cad)->result_array();

        $puntosArbol = array();

        foreach ($resultados as $resultado) {
            $ramaArbol = array("sem_" . $resultado['numSemana'] =>
                array("eva_" . $resultado['numEvaluacion'] . "_" . $resultado['idEvaluacion'] =>
                    array("equ_" . $resultado['idEquipo'])));
            $puntosArbol = array_merge_recursive($puntosArbol, $ramaArbol);
        }
        return $puntosArbol;
    }

    function cargar_evaluaciones_criterios() {

        $cad = "SELECT
                s.numSemana, es.numEvaluacion, ce.idCriterio, es.idEvaluacion
                FROM evaluacionxsemanaxequipoxsalon es, semana s, criterioxevaluacion ce
                WHERE s.idSemana = es.idSemana AND ce.idEvaluacion = es.idEvaluacion
                AND idCiclo= " . $this->session->userdata('ciclo') . "
                AND idCurso= " . $this->session->userdata('curso') . "
                AND idHorario= " . $this->session->userdata('horario') . "
                GROUP BY s.numSemana, es.numEvaluacion, ce.idCriterio, es.idEvaluacion
                ORDER BY numSemana, numEvaluacion, idCriterio";

        $resultados = $this->db->query($cad)->result_array();

        $puntosArbol = array();

        foreach ($resultados as $resultado) {
            $ramaArbol = array("sem_" . $resultado['numSemana'] =>
                array("eva_" . $resultado['numEvaluacion'] . "_" . $resultado['idEvaluacion'] =>
                    array("cri_" . $resultado['idCriterio'])));
            $puntosArbol = array_merge_recursive($puntosArbol, $ramaArbol);
        }
        return $puntosArbol;
    }

    function criterios_evaluacion($idEvaluacion) {
        $cad = "SELECT CONCAT('cri_',ce.idCriterio) id, c.nombre FROM criterioxevaluacion ce, criterio c
                WHERE ce.idCriterio=c.idCriterio AND ce.idEvaluacion= " . $idEvaluacion;

        return $this->db->query($cad)->result_array();
    }

    function buscar_alumnos_equipo($idEquipo, $idSemana, $idEvaluacion) {

        $cad = "SELECT u.idUsuario, CONCAT_WS(' ',u.nombres,u.apeMaterno,u.apePaterno) AS nombres
                FROM evaluacionxsemanaxequipoxsalon exsxexs, usuario u, equipoxusuarioxsalon exuxs
                WHERE u.idUsuario = exuxs.idUsuario
                AND exsxexs.idCiclo= " . $this->session->userdata('ciclo') . "
                AND exsxexs.idCurso= " . $this->session->userdata('curso') . "
                AND exsxexs.idHorario=" . $this->session->userdata('horario') . "
                AND exsxexs.idEquipo= " . $idEquipo . " 
                AND exsxexs.idSemana=" . $idSemana . "  
                and exsxexs.idEquipo=exuxs.idEquipo
                AND exuxs.idCiclo=exsxexs.idCiclo
                AND exuxs.idHorario=exsxexs.idHorario
                AND exuxs.idCurso=exsxexs.idCurso
                AND u.idPerfil=4
                GROUP BY u.idUsuario, CONCAT_WS(' ',u.nombres,u.apeMaterno,u.apePaterno)";

        return $this->db->query($cad)->result_array();
    }

    function buscar_criterios_evaluacion($idEvaluacion) {
        $cad = "SELECT c.idCriterio, c.descripcion
                FROM evaluacion e, criterioxevaluacion cxe, criterio c
                where e.idEvaluacion=" . $idEvaluacion . " and
                e.idEvaluacion=cxe.idEvaluacion
                and c.idCriterio=cxe.idCriterio";

        return $this->db->query($cad)->result_array();
    }

    function buscar_nivelxcriterio($desCriterio) {

        $cad = 'SELECT cxn.idCriterio, cxn.idNivel, cxn.descripcion, cxn.valor 
                FROM criterio c, criterioxnivel cxn 
                where c.descripcion="' . $desCriterio . '" and c.idCriterio=cxn.idCriterio';
        $resultados = $this->db->query($cad)->result_array();

        return $resultados;
    }

    function buscar_evaluaciones_estudiante(){
        
        
        $query=$this->db->query("SELECT u.codigo, te.nombre as tipoEquipo, eq.nombre as equipo, s.descripcion as semana, 
                    e.idUsuario, s.idSemana, e.idEvaluacion, e.idEvaluador, e.comentarioGeneral, CONCAT_WS(' ',u.nombres,u.apeMaterno,u.apePaterno) AS nombres,
                    CONCAT_WS(' ',u2.nombres,u2.apeMaterno,u2.apePaterno) AS nombresEvaluador
                    FROM evaluacionxsemanaxusuarioxsalon e, semana s, usuario u,equipoxusuarioxsalon exs, equipo eq,
                    evaluacionxsemanaxequipoxsalon ev, tipoequipo te, usuario u2
                    where e.estado=0
                    and e.idCiclo=" . $this->session->userdata('ciclo') . "
                    and e.idCurso=" . $this->session->userdata('curso') . "
                    and e.idHorario=" . $this->session->userdata('horario') . "
                    and s.idSemana
                    and u.idUsuario=e.idUsuario
                    and u2.idUsuario=e.idEvaluador
                    and s.idSemana=e.idSemana
                    and exs.idEquipo=eq.idEquipo
                    and exs.idUsuario=u.idUsuario
                    and exs.idCiclo=e.idCiclo
                    and exs.idCurso=e.idHorario
                    and exs.idHorario=e.idHorario
                    and ev.idEvaluacion=e.idEvaluacion
                    and ev.idEquipo=eq.idEquipo
                    and te.idTipoEquipo=eq.idTipoEquipo
                    AND u.idUsuario=" . $this->session->userdata('idUsuario') . "
                    group by u.codigo, te.nombre, eq.nombre, s.descripcion, 
                    e.idUsuario, s.idSemana, e.idEvaluacion, e.idEvaluador, e.comentarioGeneral,
                     CONCAT_WS(' ',u.nombres,u.apeMaterno,u.apePaterno), CONCAT_WS(' ',u2.nombres,u2.apeMaterno,u2.apePaterno)");

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
       
        
    }
    
    
    function buscar_evaluaciones($codAlumno, $tipoEquipo, $nombreEquipo, $asistenteEquipo) {
        $query = $this->db->query("SELECT u.codigo, te.nombre as tipoEquipo, eq.nombre as equipo, s.descripcion as semana, 
                                    e.idUsuario, s.idSemana, e.idEvaluacion, e.idEvaluador, e.comentarioGeneral, CONCAT_WS(' ',u.nombres,u.apeMaterno,u.apePaterno) AS nombres,
                                    CONCAT_WS(' ',u2.nombres,u2.apeMaterno,u2.apePaterno) AS nombresEvaluador
                                    FROM evaluacionxsemanaxusuarioxsalon e, semana s, usuario u,equipoxusuarioxsalon exs, equipo eq,
                                    evaluacionxsemanaxequipoxsalon ev, tipoequipo te, usuario u2
                                    where e.estado=0
                                    and e.idCiclo=" . $this->session->userdata('ciclo') . "
                                    and e.idCurso=" . $this->session->userdata('curso') . "
                                    and e.idHorario=" . $this->session->userdata('horario') . "
                                    and s.idSemana
                                    and u.idUsuario=e.idUsuario
                                    and u2.idUsuario=e.idEvaluador
                                    and s.idSemana=e.idSemana
                                    and exs.idEquipo=eq.idEquipo
                                    and exs.idUsuario=u.idUsuario
                                    and exs.idCiclo=e.idCiclo
                                    and exs.idCurso=e.idHorario
                                    and exs.idHorario=e.idHorario
                                    and ev.idEvaluacion=e.idEvaluacion
                                    and ev.idEquipo=eq.idEquipo
                                    and te.idTipoEquipo=eq.idTipoEquipo
                                    AND u.codigo like '%" . $codAlumno . "%'
                                    AND te.nombre like '%" . $tipoEquipo . "%'
                                    AND eq.nombre like '%" . $nombreEquipo . "%'
                                    AND CONCAT_WS(' ',u2.nombres,u2.apeMaterno,u2.apePaterno) like '%" . $asistenteEquipo . "%'
                                    group by u.codigo, te.nombre, eq.nombre, s.descripcion, 
                                    e.idUsuario, s.idSemana, e.idEvaluacion, e.idEvaluador, e.comentarioGeneral, CONCAT_WS(' ',u.nombres,u.apeMaterno,u.apePaterno), CONCAT_WS(' ',u2.nombres,u2.apeMaterno,u2.apePaterno)");

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function terminar_evaluacion($permiso, $listaUsuario, $idSemana, $idEvaluacion, $idEquipo) {
        $this->db->trans_start();

        foreach ($listaUsuario as $usuario) {
            $data3 = array(
                'publicar' => $permiso,
            );


            $this->db->where('idUsuario', $usuario['idUsuario']);
            $this->db->where('idCiclo', $this->session->userdata('ciclo'));
            $this->db->where('idCurso', $this->session->userdata('curso'));
            $this->db->where('idHorario', $this->session->userdata('horario'));
            $this->db->where('idSemana', $idSemana);
            $this->db->where('idEvaluacion', $idEvaluacion);


            $this->db->update('registronotas', $data3);

            $data4 = array(
                'estado' => 0,
            );


            $this->db->where('idEvaluacion', $idEvaluacion);
            $this->db->where('idEquipo', $idEquipo);
            $this->db->where('idSemana', $idSemana);
            $this->db->where('idCiclo', $this->session->userdata('ciclo'));
            $this->db->where('idCurso', $this->session->userdata('curso'));
            $this->db->where('idHorario', $this->session->userdata('horario'));

            $this->db->update('evaluacionxsemanaxequipoxsalon', $data4);
        }


        $this->db->trans_complete();

        if ($this->db->trans_status() === FALSE)
            $mensaje = "error";
        else
            $mensaje = "ok";

        return $mensaje;
    }

    function guardar_automatico($forma) {


        $this->db->trans_start();


        $criterios = $this->Cursos_Model->obtener_criterios_curso();
        $estudiantes = $this->Cursos_Model->buscar_estudiantes();

        //guarda todas las calificaciones con promedio

        foreach ($criterios as $criterio) {

            $idCriterio = $criterio['idCriterio'];

            foreach ($estudiantes as $estudiante) {
                $i = 1;
                $codigoUsuario = $estudiante['codigo'];
                $notas = $this->Cursos_Model->buscar_notas($codigoUsuario, $idCriterio);

                $notaTotal = 0;

                foreach ($notas as $nota) {

                    //$cad = $cad . " " . $nota['nota'] . "  ";
                    $valores[$i - 1] = $nota['nota'];
                    $notaTotal += intval($nota['nota']);
                    $i++;
                }



                if ($forma == 1) {

                    //media
                    $media = round($notaTotal / ($i - 1));
                    $data = array(
                        'notaCriterio' => $media,
                    );
                    $data1 = array(
                        'tipoCalificacion' => 1,
                    );
                }


                if ($forma == 2) {
                    //moda
                    $values = array_count_values($valores);
                    $mode = array_search(max($values), $values);

                    $data = array(
                        'notaCriterio' => $mode,
                    );

                    $data1 = array(
                        'tipoCalificacion' => 2,
                    );
                }

                if ($forma == 3) {
                    $data = array(
                        'notaCriterio' => 0,
                    );
                    $data1 = array(
                        'tipoCalificacion' => 3,
                    );
                }



                $this->db->where('idUsuario', $estudiante['idUsuario']);
                $this->db->where('idCiclo', $this->session->userdata('ciclo'));
                $this->db->where('idCurso', $this->session->userdata('curso'));
                $this->db->where('idHorario', $this->session->userdata('horario'));
                $this->db->where('idCriterio', $idCriterio);
                $this->db->update('criterioxusuarioxsalon', $data);

                $this->db->where('idCiclo', $this->session->userdata('ciclo'));
                $this->db->where('idCurso', $this->session->userdata('curso'));
                $this->db->where('idHorario', $this->session->userdata('horario'));
                $this->db->update('salon', $data1);
            }
        }

        $this->db->trans_complete();

        if ($this->db->trans_status() === FALSE)
            $mensaje = "error";
        else
            $mensaje = "ok";

        return $mensaje;
    }

    function guardar_evaluacion($idUsuario, $idSemana, $idEvaluacion, $comentarioGeneral, $listaNotas) {
        $this->db->trans_start();

        //ACTUALIZAR EN EVALUACIONXSEMANAXUSUARIOXSALON
        //NOTA TOTAL
        $notaTotal = 0;
        foreach ($listaNotas as $nota) {
            //$this->db->select('valor');
            //  $this->db->where('idNivel', $nota['idNivel']);
            // $valorNivel = $this->db->get('nivel')->result_array();
            //$notaTotal += intval($valorNivel[0]['idNivel']);
            $notaTotal += intval($nota['idNivel']);
        }

        $data2 = array(
            'notaTotal' => $notaTotal,
            'comentarioGeneral' => $comentarioGeneral,
            'estado' => '0'
        );
        $this->db->where('idUsuario', $idUsuario);
        $this->db->where('idCiclo', $this->session->userdata('ciclo'));
        $this->db->where('idCurso', $this->session->userdata('curso'));
        $this->db->where('idHorario', $this->session->userdata('horario'));
        $this->db->where('idSemana', $idSemana);
        $this->db->where('idEvaluacion', $idEvaluacion);
        $this->db->where('idEvaluador', $this->session->userdata('idUsuario'));
        $this->db->update('evaluacionxsemanaxusuarioxsalon', $data2);

        //INSERTAR EN REGISTRONOTAS
        foreach ($listaNotas as $nota) {
            $this->db->select('valor');
            $this->db->where('idNivel', $nota['idNivel']);
            $valorNivel = $this->db->get('nivel')->result_array();


            $data3 = array(
                'nota' => $nota['idNivel'],
                'comentario' => $nota['comentario'],
                'comentarioDocente' => $nota['comentarioDocente'],
                'fecha' => date("Y-m-d")
            );
            $this->db->where('idUsuario', $idUsuario);
            $this->db->where('idCiclo', $this->session->userdata('ciclo'));
            $this->db->where('idCurso', $this->session->userdata('curso'));
            $this->db->where('idHorario', $this->session->userdata('horario'));
            $this->db->where('idSemana', $idSemana);
            $this->db->where('idEvaluacion', $idEvaluacion);
            $this->db->where('idCriterio', $nota['idCriterio']);

            $this->db->update('registronotas', $data3);
        }

        $this->db->trans_complete();

        if ($this->db->trans_status() === FALSE)
            $mensaje = "error";
        else
            $mensaje = "ok";

        return $mensaje;
    }

    function guardar_notas_finales($idUsuario, $listaNotas) {

        $this->db->trans_start();

        foreach ($listaNotas as $listaNota) {

            $this->db->where('idUsuario', $idUsuario);
            $this->db->where('idCiclo', $this->session->userdata('ciclo'));
            $this->db->where('idCurso', $this->session->userdata('curso'));
            $this->db->where('idHorario', $this->session->userdata('horario'));
            $this->db->where('idCriterio', $listaNota['idCriterio']);
            $data = array(
                'notaCriterio' => $listaNota['nota'],
            );
            $this->db->update('criterioxusuarioxsalon', $data);
        }

        $this->db->trans_complete();

        if ($this->db->trans_status() === FALSE)
            $mensaje = "error";
        else
            $mensaje = "ok";

        return $mensaje;
    }

    function obtener_resultado_criterios($idUsuario, $idSemana, $idEvaluacion) {
        $query = $this->db->query("SELECT c.descripcion, rn.idCriterio, rn.nota, rn.comentario, cxn.idNivel,rn.comentarioDocente,rn.publicar
                                    FROM registronotas rn
                                    LEFT JOIN criterio c ON c.idCriterio = rn.idCriterio
                                    LEFT JOIN criterioxnivel cxn ON cxn.idCriterio=rn.idCriterio
                                    WHERE rn.idSemana = " . $idSemana . "
                                    AND cxn.idNivel=rn.nota
                                    AND rn.idUsuario =" . $idUsuario . "
                                    AND rn.idEvaluacion = " . $idEvaluacion . "
                                    AND rn.idCiclo=" . $this->session->userdata('ciclo') . " 
                                    AND rn.idCurso=" . $this->session->userdata('curso') . " 
                                    AND rn.idHorario=" . $this->session->userdata('horario'));

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function nombre_usuario($idUsuario) {
        $query = $this->db->query("SELECT CONCAT_WS(' ',u.nombres,u.apeMaterno,u.apePaterno) AS nombres
                                    FROM usuario u
                                    WHERE u.idUsuario= " . $idUsuario);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function generar_criterio_estudiante($codigoUsuario) {
        $cad = "select rn.idCriterio as Criterio, count(rn.idCriterio) as Cantidad, c.nombre
                from  registronotas rn,usuario u,criterio c
                where u.codigo=" . $codigoUsuario . " and 
                rn.idCiclo=" . $this->session->userdata('ciclo') . " and 
                rn.idCurso=" . $this->session->userdata('curso') . " and 
                rn.idHorario=" . $this->session->userdata('horario') . " and
                u.idUsuario=rn.idUsuario 
                and c.idCriterio=rn.idCriterio
                group by rn.idCriterio";

        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function generar_curva_notas($idUsuario) {

//        $cad = "SELECT e.notaTotal, s.descripcion, ev.numEvaluacion 
//                FROM evaru.evaluacionxsemanaxusuarioxsalon e, semana s, usuario u, evaluacionxsemanaxequipoxsalon ev
//                where u.codigo=" . $idUsuario . " 
//                and e.idCiclo=" . $this->session->userdata('ciclo') . "
//                and e.idCurso=" . $this->session->userdata('curso') . " 
//                and e.idHorario=" . $this->session->userdata('horario') . "
//                and e.idSemana=s.idSemana 
//                and u.idUsuario=e.idUsuario
//                and ev.idEvaluacion=e.idEvaluacion
//                group by e.notaTotal, s.descripcion 
//                order by ev.numEvaluacion";

        $cad = "SELECT s.descripcion as semana,c.descripcion as criterio, cxuxs.nota as notaCriterio, s.idSemana, c.idCriterio
                FROM registronotas cxuxs, semana s, criterio c, usuario u,evaluacionxsemanaxusuarioxsalon exs
               where cxuxs.idCriterio=c.idCriterio
               and cxuxs.idCurso=" . $this->session->userdata('curso') . " 
               and cxuxs.idCiclo=" . $this->session->userdata('ciclo') . "
               and cxuxs.idHorario=" . $this->session->userdata('horario') . "
               and cxuxs.idUsuario=u.idUsuario
               and u.codigo=" . $idUsuario . " 
               and exs.idSemana=s.idSemana
               and exs.idUsuario=u.idUsuario
               and exs.estado=0
               and cxuxs.idSemana=s.idSemana	
		and exs.idSemana=s.idSemana
               group by cxuxs.nota, s.descripcion, c.descripcion";



        $resultados = $this->db->query($cad)->result_array();

        $notas = array();

        foreach ($resultados as $resultado) {
            $ramaNota = array($resultado['semana'] =>
                array($resultado['criterio'] => $resultado['notaCriterio'] . "_" . $resultado['idCriterio']));
            $notas = array_merge_recursive($notas, $ramaNota);
        }


        return $notas;
    }

    function sacar_notas_criterio_semana($idUsuario, $idSemana) {
        $cad = "SELECT   cxuxs.notaCriterio, c.descripcion as criterio
           FROM criterioxusuarioxsalon cxuxs, semana s, criterio c, usuario u,evaluacionxsemanaxusuarioxsalon exs
           where cxuxs.idCriterio=c.idCriterio
            and cxuxs.idCurso=" . $this->session->userdata('curso') . " 
            and cxuxs.idCiclo=" . $this->session->userdata('ciclo') . "
            and cxuxs.idHorario=" . $this->session->userdata('horario') . "
            and cxuxs.idUsuario=u.idUsuario
            and u.codigo=" . $idUsuario . " 
           and exs.idSemana=s.idSemana
           and exs.idUsuario=u.idUsuario
           and exs.estado=0
           and s.idSemana=" . $idSemana . "
           group by cxuxs.notaCriterio, s.descripcion, c.descripcion";

        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function obtener_datos_reporte($fechaInicial, $fechaFinal, $idUsuario) {

        $cad = "select  c.descripcion as criterio, cxuxs.notaCriterio
                from registronotas rn, criterio c, usuario u, criterioxusuarioxsalon cxuxs
                where
                u.idUsuario=" . $idUsuario . "
                and rn.idCiclo= " . $this->session->userdata('ciclo') . " 
                and rn.idCurso=" . $this->session->userdata('curso') . " 
                and rn.idHorario=" . $this->session->userdata('horario') . " 
                and rn.fecha > '" . $fechaInicial . "'
                and rn.fecha < '" . $fechaFinal . "'
                and rn.idCriterio=c.idCriterio
                and rn.idUsuario=u.idUsuario
                and c.idCriterio=cxuxs.idCriterio
                and u.idUsuario=cxuxs.idUsuario
                and rn.idCurso=cxuxs.idCurso
                and rn.idHorario=cxuxs.idHorario
                and rn.idCiclo=cxuxs.idCiclo
                and rn.idCriterio=cxuxs.idCriterio
                and rn.idUsuario=cxuxs.idUsuario
                group by  c.descripcion , cxuxs.notaCriterio
                order by c.idCriterio";


        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function obtener_datos_usuarios($fechaInicial, $fechaFinal) {

        $cad = "select concat_ws(' ',apePaterno,concat_ws(', ',apeMaterno, nombres)) as estudiante, u.idUsuario, u.codigo
                from registronotas rn, criterio c, usuario u, criterioxusuarioxsalon cxuxs
                where rn.idCiclo=" . $this->session->userdata('ciclo') . " 
                and rn.idCurso=" . $this->session->userdata('curso') . " 
                and rn.idHorario=" . $this->session->userdata('horario') . " 
                and rn.fecha > '" . $fechaInicial . "'
                and rn.fecha < '" . $fechaFinal . "'
                and rn.idCriterio=c.idCriterio
                and rn.idUsuario=u.idUsuario
                and c.idCriterio=cxuxs.idCriterio
                and u.idUsuario=cxuxs.idUsuario
                and rn.idCurso=cxuxs.idCurso
                and rn.idHorario=cxuxs.idHorario
                and rn.idCiclo=cxuxs.idCiclo
                and rn.idCriterio=cxuxs.idCriterio
                and rn.idUsuario=cxuxs.idUsuario
                group by concat_ws(' ',apePaterno,concat_ws(', ',apeMaterno, nombres)) ";


        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function obtener_criterios_curso() {

        $cad = "SELECT cxc.idCriterio, c.descripcion, a.descripcion as aspecto
                FROM criterioxcurso cxc, criterio c, aspecto a
                where cxc.idCriterio=c.idCriterio
                and a.idAspecto = c.idAspecto
                and idCurso=" . $this->session->userdata('curso') . " ;";


        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }
    
    function obtener_datos_generales() {
        $cad = "SELECT c.nombre as curso, h.codigo as horario, concat_ws(' ',u.apePaterno, u.apeMaterno, u.nombres) as docente
                FROM usuarioxsalon us
                left join curso c
                on c.idCurso = us.idCurso
                left join horario h
                on h.idHorario = us.idHorario
                left join usuario u
                on u.idUsuario = us.idUsuario
                where us.idCurso = " . $this->session->userdata('curso') . "
                and us.idHorario = " . $this->session->userdata('horario') . "
                and us.idUsuario = " . $this->session->userdata('idUsuario');
        
        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function buscar_criterios_usuario($codigoUsuario) {
        $cad = "SELECT rn.idCriterio, c.descripcion, concat_ws(' ', u.apePaterno,concat_ws(', ', u.apeMaterno, u.nombres))  as nombre,u.idUsuario
                    FROM registronotas rn, usuario u, criterio c
                    where u.idUsuario=rn.idUsuario
                    and u.codigo='" . $codigoUsuario . "'
                    and  c.idCriterio=rn.idCriterio
                    group by rn.idCriterio";

        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function buscar_notas($codigoUsuario, $idCriterio) {

        $cad = "SELECT rn.idCriterio, rn.nota
                FROM registronotas rn, usuario u
                where u.idUsuario=rn.idUsuario
                and u.codigo='" . $codigoUsuario . "'
                and rn.idCriterio='" . $idCriterio . "'";

        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function promedioTotal($idCriterio) {

        $cad = "SELECT sum(c.notaCriterio) as promedio
                FROM criterioxusuarioxsalon c
                where c.idCriterio=" . $idCriterio . " 
                and c.idCiclo=" . $this->session->userdata('ciclo') . " 
                and c.idCurso=" . $this->session->userdata('curso') . " 
                and c.idHorario=" . $this->session->userdata('horario') . "";


        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function cantidadAlto($idCriterio) {


        $cad = "SELECT count(notaCriterio) as alta 
                FROM evaru.criterioxusuarioxsalon 
                where (notaCriterio=3 or notacriterio=4) 
                and idCriterio=" . $idCriterio . " 
                and idCiclo=" . $this->session->userdata('ciclo') . " 
                and idCurso=" . $this->session->userdata('curso') . " 
                and idHorario=" . $this->session->userdata('horario') . "";

        $query = $this->db->query($cad);

        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }
    }

    function buscar_tipo_calificacion() {


        $this->db->select('tipoCalificacion');
        $this->db->where('idCiclo', $this->session->userdata('ciclo'));
        $this->db->where('idHorario', $this->session->userdata('horario'));
        $this->db->where('idCurso', $this->session->userdata('curso'));

        $resultado = $this->db->get('salon')->result_array();

        return $resultado;
    }

}

?>